1. Field of the Invention
This invention relates to a device and method that manage and execute remote procedures on the network information system that connects plural computer systems executing information processing with each other. In particular, this invention makes it possible to combine remote procedures that are located on plural computer system in distribution and executes them.
2. Description of Related Art
Recently, computer systems are used under distributed environment in many cases, and the procedures executed on the computer systems are stored and managed in distribution. Under the distributed environment, the user can invoke a procedure located on a remote computer system. However, the remote user cannot combine plural procedures managed by the computer systems and execute them at will. Under the distributed environment, it is desired that all procedures are located in distribution and these distributed procedures are combined with each other and are executed easily and effectively.
There are conventional arts related to this invention shown as follows.
Common Gateway Interface (CGI) is a standard that defines environment variables, command lines, standard input and standard output between an application program and an information server that invokes the application program so that the information server, such as a hypertext transfer protocol (HTTP) server, creates information dynamically.
However, CGI does not provide any mechanism that allows an application program to invoke a service including a remote procedure provided by another information server, such as a HTTP server.
Accordingly, it has not been possible to at will combine and use application programs invoked by an information server such as a HTTP server through an information client such as a World Wide Web (WWW) client.
Japanese Laid-Open Publication Number 6-75892 discloses a remote procedure management device. This invention comprises a remote procedure request unit, a system remote procedure execution unit, a system remote procedure manager and a system procedure preprocessor. The remote procedure request unit requests a remote procedure for the service provided by the system. The system remote procedure execution unit executes a remote procedure for the service provided by the system. The system remote procedure manager manages remote procedures by linking the system remote procedure execution unit with plural remote procedures for services provided by the system based on a remote procedure identifier that is unique within the network system. The system procedure preprocessor is invoked by a stub, which executes a remote procedure call, queries the system remote procedure manager, determines the system""s remote procedure to be invoked and invokes the corresponding system remote procedure execution unit. This configuration allows a remote procedure provided by a system to be called even if the remote procedure on the system is not defined in the interface of the application service.
ANSA Information Services Framework from Architecture Projects Management Limited is a distributed system based on Common Object Request Broker Architecture (CORBA) and WWW (Rees, O., Edwards, N., Madsen, M., Beasley, M. and McClenaghan, A.: A Web of Distributed Object, The ANSA Project, Architecture Projects Management Ltd(1995)).
This system uses Internet Inter-ORB Protocol in order to transfer General Inter-ORB Protocol via IP (Internet) protocol.
This technology makes it possible to access CORBA objects from the WWW by preparing a gateway for converting HTTP to IIOP and a gateway for converting IIOP to HTTP.
Delegate is a multipurpose protocol mediation system developed by Yutaka Sato in Electrotechnical Laboratory. (xe2x80x9cDelegate: Multipurpose Protocol Mediation System: DeleGatexe2x80x9d, Bulletin of the Electrotechnical Laboratory, Vol.59, No.6 (1995)).
DeleGate executes a protocol conversion, character code conversion, and MIME (Multipurpose Internet Mail Extension) code conversion at the time of mediation in order to provide a protocol, character code and MIME code which are suitable for the client. However, this technology does not allow the user to synthesize a desired remote procedure call by combining a plurality of DeleGate in a form of a network.
OpenDoc (trademark of Apple Co.) is a component software architecture technology provided by Apple Corporation. Basic elements that constitute Opendoc are shown in the following.
(1) document: a set of parts combined by the user or application developer.
(2) part: a structural element of a document.
(3) part editor: a user interface to display the content of a part, to operate the content or to change the content.
(4) part service: user interface to provide a function held by a part, or to operate the content of a part.
(5) part viewer: a display of the content of a part to the user.
(6) container application: an application that supports a part editor and a part service.
Opendoc is a document-oriented application building environment. In Opendoc, a document is made of plural parts, which are application modules. A document in Opendoc is made by inserting parts in the top level part. Each part accompanies a part editor that changes the state of part according to a display of the part or an event on the part.
As described above, Opendoc provides a mechanism that creates a compound document made of plural types of objects by combining parts, each of which is an independent application module. However, this technology neither exports an interface of a part under the distributed environment including Internet nor defines a new function by connecting parts in a form of a graph under the distributed environment.
OLE (Object Linking and Embedding) is a component ware based on compound document provided by Microsoft Corporation. OLE uses Component Object Model (COM) provided by Microsoft Corporation as a collaborative object environment. (OLE and COM are trademark of Microsoft Co.).
DCOM (Distributed Component Object Model, Trademark) is an application level protocol provided by Microsoft Corporation. The objective of DCOM is a remote procedure call among objects in a network distributed component system. DCOM was called Network OLE. DCOM is based on DCE-RPC of Open Software Foundation and can be used in cooperation with COM provided by Microsoft Corporation.
OLE can create an application by combining a variety of parts. OLE provides two methods to insert parts, that is, the embedding and the linking. Embedding is a method to insert a whole object into another object. Linking is a method which the body of an object outside a document referenced by an pointer in the document. However, OLE cannot create an application by designating a graph made of plural links. In other words, OLE can create a compound part having plural levels of hierarchy by iterating one level part composition that uses RPC between objects. However, OLE neither defines a pattern specifying plural level of composition at a time nor connects parts dynamically at the time of execution.
IntelligentPad is a compound media tool kit proposed by Professor Yuzuru Tanaka in Hokkaido University. IntelligentPad is a platform to create a document by combining plural pads, each of which is a media object having a metaphor of a paper.
A primitive pad provided by IntelligentPad system provides functions including input, output storing of data, geometry management of pads, data conversion, and extension of the function of a specific application and a system. The user can combines the pads on a screen so as to create a composite pad, which composes functions.
However, IntelligentPad neither exports the function of a pad on the distributed environment including Internet nor executes distributed computing by combining pads that exist in distributed environment.
As described above, by using the conventional arts, it is difficult for the user who uses remote procedure client application to define a desired service by combining plural remote procedure servers. Further, when a service is provided by combining remote procedure calls, it is difficult for the user who uses a client application to know variables assigned to each remote procedure and the execution result.
The present invention has been made in view of the above circumstances. An object of the present invention is to allow the user to invoke a composite procedure or to define a new remote procedure by combining interactively remote procedures managed in distribution on a network.
To achieve the object as embodied and broadly described herein, this invention provides a procedure execution device comprising: an input unit for inputting a first query to retrieve a program and a parameter that is necessary for executing the program; a message analyzer for separating the first query and the parameter inputted through the input unit; a storage for storing a second query and a slot to insert a parameter necessary for a program retrieved by using the second query, both the second query and the slot corresponding to the first query; a procedure retriever for retrieving the second query and the slot corresponding to the first query separated by the message analyzer; and a procedure controller for inputting the second query as the first query and for inputting the slot to which the parameter separated by the message analyzer is inserted as the parameter through the input unit.
This configuration makes it possible to store a second query related to a first query, and a slot for inserting a parameter of a program retrieved by using the second query into a storage such as a database, to synthesize the program retrieved by the first query by using the program retrieved by using the second query, and to execute the synthesized program.
The present invention further provides an information processing system including a plurality of computer systems that are connected with each other by a network and stores procedures, comprising: a storage for storing a composite procedure that is described so that an argument thereof includes location information on the network for a procedure; a call unit, when the composite procedure is executed with the location information for the procedure as an argument, for calling the procedure corresponding to the location information; a first execution unit for executing the called procedure and returning a result of the execution; and a second execution unit for receiving the result of the called procedure returned by the first execution unit and for continuing execution of the composite procedure.
This configuration allows the user to synthesize a composite procedure by assigning locations of plural procedures to arguments in order to combine them, and to execute the composite procedure by invoking the procedures located in the locations on the network specified by the assignments of the arguments.